class Solution(object):
    def minDistance(self, word1, word2):
        """
        :type word1: str
        :type word2: str
        :rtype: int
        """
        dp = [[0 for _ in range(len(word2)+1)] for _ in range(len(word1)+1)]
        for i in range(len(word1)):
            dp[i][-1] = i+1
        for i in range(len(word2)):
            dp[-1][i] = i+1
        for i in range(len(word1)):
            for j in range(len(word2)):
                if word1[i]==word2[j]:
                    dp[i][j] = dp[i-1][j-1]
                else:
                    dp[i][j] = min(dp[i-1][j], dp[i][j-1], dp[i-1][j-1])+1
        return dp[len(word1)-1][len(word2)-1]

print(Solution().minDistance("ab", "bcd"))